/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package proyectoempresa.modelo;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import org.hibernate.annotations.Cascade;

/**
 *
 * @author Diego
 */
 @Entity
public class ReporteGeneralMesual implements Serializable  {
 @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    protected Long id;
    protected String fecha;
    protected String sumaingresos = "0.0";
    protected String sumaegresos = "0.0";
    protected String activoTotal = "0.0";
    protected String paramBusqueda ;
    @OneToMany(mappedBy = "reporteGeneral", cascade = CascadeType.ALL)
    @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
    List<ReporteCuentasMensual> listareportecuentas;

    public ReporteGeneralMesual() {
        listareportecuentas = new ArrayList<ReporteCuentasMensual>();
    }

    public String getActivoTotal() {
        return activoTotal;
    }

    public void setActivoTotal(String activoTotal) {
        this.activoTotal = activoTotal;
    }

    public String getParamBusqueda() {
        return paramBusqueda;
    }

    public void setParamBusqueda(String paramBusqueda) {
        this.paramBusqueda = paramBusqueda;
    }

    public String getFecha() {
        return fecha;
    }

    public void setFecha(String fecha) {
        this.fecha = fecha;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSumaegresos() {
        return sumaegresos;
    }

    public void setSumaegresos(String sumaegresos) {
        this.sumaegresos = sumaegresos;
    }

    public String getSumaingresos() {
        return sumaingresos;
    }

    public void setSumaingresos(String sumaingresos) {
        this.sumaingresos = sumaingresos;
    }

    public void agregar(ReporteCuentasMensual il) {
        if ((il != null) && !listareportecuentas.contains(il)) {
            listareportecuentas.add(il);
            il.setReporteGeneral(this);

        }
    }

    public void remover(ReporteCuentasMensual hc) {
        if (listareportecuentas.contains(hc)) {
            listareportecuentas.remove(hc);
            hc.setReporteGeneral(null);
        }
    }

    public void sumaIngresos() {
        Double va = 0.0;
        for (ReporteCuentasMensual claseCuentas : listareportecuentas) {
            va = va + Double.parseDouble(claseCuentas.getIngresosMes());
        }
        this.sumaingresos = "" + va;
    }

    public void suEgresos() {
        Double va = 0.0;
        for (ReporteCuentasMensual claseCuentas : listareportecuentas) {
            va = va + Double.parseDouble(claseCuentas.getEgresosMes());
        }
        this.sumaegresos = "" + va;
    }

    public void activoTotal() {
        Double va = 0.0;
        va = Double.parseDouble(this.sumaingresos) - Double.parseDouble(this.sumaegresos);
        this.activoTotal = "" + va;
    }

    @Override
    public String toString() {
        return "ClasePadreCuentas{" + "fecha=" + fecha + "sumaingresos=" + sumaingresos + "sumaegresos=" + sumaegresos + "activoTotal=" + activoTotal + '}';
    }
}
